import json

# Serialization序列化，将内存中对象存储下来，把他变成一个个字节。二进制。
# deSerialization反序列化，将文件的一个个字节存储到内存中
names = ['n1', 'n2', 'n2']
file = open('serial.txt', 'w', encoding='utf8')
# write写入的object只能是str或二进制
# 1.转化为str ==> json模块
# json 里使用""表示字符串
# '["n1", "n2", "n2"]'
x = json.dumps(names)  # dumps ==> 将数据转化成字符串, 但不会将数据写入到文件
print(x, type(x))
json.dump(names, file)  # dump() ==> 将数据转化成字符串，同时写入到指定文件
x = '{"name":"tom", "age":18}'  # json字符串
p = json.loads(x)  # loads ==>  反序列化，将数据转化成py对象
print(type(p))  # <class 'dict'>
file.close()
file1 = open('serial.txt', 'r', encoding='utf8')  # mode 'r'/'w'互斥，故应当先file.close()
p = json.load(file1)
print(p)

# 2.转化为二进制 ==> pickle模块
